package com.eight.util;

import com.eight.pojo.TbMemberLevel;

import java.util.List;
import java.util.Optional;

/**
 * @Description: 用户等级过滤的工具类
 * @Author: Van.Planifolia
 * @CreateTime: 2023-03-16  19:46
 * @Version: 1.0
 */
public class CustomerUtil {
    /**
     * 根据传递的用户数据进行判断，若有满足的就返回找到的信息，没有返回空
     *
     * @param tbMemberLevels 等级List
     * @param growthPoint 要判断的等级数值
     * @return 判断得到的结果
     */
    public static TbMemberLevel getLevel(List<TbMemberLevel> tbMemberLevels, Double growthPoint) {
        // 倒叙排序，方便下面进行挑选
        tbMemberLevels.sort((e1, e2) -> e2.getGrowthPoint() - e1.getGrowthPoint());
        // 挑选出最对应的等级
        Optional<TbMemberLevel> first = tbMemberLevels.stream().parallel().filter(e -> growthPoint >= e.getGrowthPoint()).findFirst();
        // 如果找到了就返回值，没有就返回空
        return first.orElse(null);
    }
}
